package com.chenchao.javapackaging;

/**
 * @encoding : UTF-8
 * @Time : 2020/11/10 10:32
 * @Author : Chen Chao
 * @File : javaSE.com.chenchao.javapackaging.Boxing.java
 * @Software : IntelliJ IDEA
 * @since : 1.8
 *  * java包装类
 */

public class Boxing {
    public static void main(String[] args) {
        //基本转包装类_装箱
        int a=1;
        //手动装箱_两种方式
        //Integer integer2 = new Integer(a);
        //Integer integer3 = Integer.valueOf(a);


        //自动装箱自动编译成 Integer integer = Integer.valueOf(a);
        Integer integer = a;
        Integer integer1 =Integer.parseInt("123");

        Integer integer4 = new Integer("123");
        //可以用字符串,但必须是数字，不然报错


        //1
        System.out.println(integer4);
        //123
        //由于覆盖了toString所以直接打印值
        System.out.println(Integer.MAX_VALUE);
        //2147483647
        System.out.println(Integer.MIN_VALUE);
        //-2147483648
        System.out.println(Integer.TYPE);
        //打印由什么数据类型包装而成
        System.out.println(integer instanceof Integer);
        //true
        System.out.println(Integer.toBinaryString(5));
        //101转换成二进制

        ////包装类转基本数据类型_拆箱
        int num1=integer1.intValue();
        System.out.println(num1);
        System.out.println(integer);
        Double aDouble = Double.valueOf("10.5");
        double v = aDouble.doubleValue();
        Long aLong = new Long(10);
        long l = aLong.longValue();
        System.out.println(aDouble+","+v);
        System.out.println(aLong+","+l);

        //自动拆箱_编译时会自动integer1.intValue();
        int m1=integer1;
        System.out.println(m1);
        System.out.println(integer);

        int m=5;
        boolean b2=false;
        //基本数据类型转字符串
        String s2= m+"";
        String s3= b2+"";
        //包装类转成字符串
        Boolean b=false;
        String s1 = integer.toString();
        String s4=b.toString();



        //字符串转基本数据类型,但必须是数字，不然报错
        int i=Integer.parseInt("123");
        boolean b1=Boolean.parseBoolean("true");
        //boolean是个例外，除了"true",都是false
        int i2=new Integer("123");
        boolean b3 =new Boolean("true");
        //先成包装类再转基本类型
        System.out.println(b1);
    }

}
